在Ruby1.9程序中,我想将当前时间格式化为Thu1:51PM。我应该为一天中的小时使用什么格式代码(本例中为1)?Time.now.strftime'%a%I:%M%p'#=>"Thu01:51PM"Time.now.strftime'%a%l:%M%p'#=>"Thu1:51PM"%I有一个前导零(01)。%l有一个前导空格(1)。我在strftimedocumentation中没有看到小时的任何其他格式代码.我不能使用.lstrip因为空格在字符串的中间。我可以使用.gsub(/+/,""),但我想知道是否有更简洁、更简单的方法。 最佳答案
我的gem文件如下所示:group:development,:testdogem'rspec-rails'gem'annotate-models','1.0.4'end我运行了“bundleinstall”,它安装了annotate-models包。如果我输入:annotate,我会得到一个命令未找到的错误。如果我键入:bundleshowannotate,我会收到“无法在当前包中找到gemannotate”。如果我输入bundleshowannotate-models它说它安装在:/Library/Ruby/Gems/1.8/gems/annotate-models-1.0.4输入:
我希望下面的代码能按预期工作,但它给了我一个NoMethodError(为#classMyClassendmy_object=MyClass.newmy_object.instance_variable_set(:@foo,"bar")MyClass.send("attr_reader",:foo)putsmy_object.foo问题是我在一个更大的应用程序中使用完全相同的代码并且它完全按照我的预期工作,但是当我将它简化为这个最基本的示例时它失败了。(我知道还有很多其他方法可以完成我在Ruby中所做的事情) 最佳答案 使用Modu
我对在RubyonRailsTutorial.org中找到的这段代码有点困惑。它的add_index部分究竟做了什么?为什么这里有3行?classCreateRelationships 最佳答案 Adatabaseindexisadatastructurethatimprovesthespeedofoperationsinatable.Indexescanbecreatedusingoneormorecolumns,providingthebasisforbothrapidrandomlookupsandefficientorder
为什么titlecase弄乱了名字?我有:JohnMarkMcMillan它变成了:>>"johnmarkMcMillan".titlecase=>"JohnMarkMcMillan"为什么姓氏后面要加空格?基本上我的模型中有这个:before_save:capitalize_namedefcapitalize_nameself.artist=self.artist.titlecaseend我试图确保数据库中的所有名称都是首字母大写,但在驼峰式名称的情况下它会失败。有什么解决办法吗? 最佳答案 如果Rails不够好,您可以自己做:c
我有一个Rails项目,我忽略了为其构建测试(很遗憾!),并且代码库已经变得相当大。我的一个friend说RSpec很难用,除非你从一开始就使用它。这是真的?是什么让他这么说?那么,考虑到可用的测试套件和代码库已经存在的事实,让这个东西可测试的最佳行动方案是什么?这真的与从头开始做有很大不同吗? 最佳答案 这个问题cameuprecently在RSpec邮件列表上,我们通常给出的建议是:除非您打算更改它,否则不要费心尝试将规范改造为现有的、有效的代码-这会让人筋疲力尽,而且除非代码需要更改,否则毫无意义。从现在起开始为您所做的任何更
我想为用户注册添加一个invite_code要求。IE。除了要求他们指定电子邮件/密码组合外,我还想要一个额外的字段:invite_code。这是一个临时修复,因此非通缉用户无法在给定的alpha期间登录。我很困惑,因为Devise没有添加Controller。我有点熟悉虚拟属性的概念,令我震惊的是我可以向模型添加一个:invite_code,然后现在硬编码一个步骤,它说邀请代码现在必须等于12345或其他任何内容。这对设计身份验证有意义吗?我该如何通过适当的RailsRestful方法来解决这个问题?非常感谢。 最佳答案 1)除了
我为我的应用程序创建了一个自定义记录器,称为CRON_LOG,只需将这段代码添加到config/environment.rbCRON_LOG=Logger.new("#{Rails.root}/log/cron.log")CRON_LOG.level=Logger::INFO然后,当我想记录一些东西时,就这样做:CRON_LOG.info"something"它工作正常,但我想在每条日志消息之前添加当前时间戳。当然,我可以将Time.now添加到我的日志消息中,但我想知道是否有一种方法可以将它作为默认值添加到每条日志消息中。我该怎么做?谢谢。 最佳答案
所以我在ruby中知道x.nil?将测试x是否为空。测试x是否等于''、''(两个空格)或''(三个空格)等的最简单方法是什么?基本上,我想知道测试变量是否全是空格的最佳方法是什么? 最佳答案 如果您使用的是Rails,您可以简单地使用:x.blank?当x为nil时调用是安全的,如果x为nil或全为空白则返回true。如果您不使用Rails,您可以从activesupportgem获得它。使用geminstallactivesupport安装。在您的文件中,要么require'active_support/core_ext获取
我在附加数据然后将其添加到数组时遇到了一个小问题。这是我的代码@order.orderdesc||=[]@cart.line_items.eachdo|item|@order.orderdesc+=item.quantity+"x"+item.product.titleend我只想添加item.quantity和item.product.title。可以访问它们。谢谢 最佳答案 如果你想在数组中添加“东西”,+=不是为此而制作的。您可以使用运算符(附加在数组末尾):@order.orderdesc||=[]@cart.line_it